﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <!-- Documenting T:NAnt.MSNet.Tasks.IldasmTask-->
  <head>
    <meta http-equiv="Content-Language" content="en-ca" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="../style.css" />
    <title>&lt;ildasm&gt; Task</title>
  </head>
  <body>
    <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
      <tr>
        <td class="NavBar-Cell">
          <a href="http://nant.sourceforge.net">
            <b>NAnt</b>
          </a>
          <img alt="-&gt;" src="../images/arrow.gif" />
          <a href="../index.html">Help</a>
          <img alt="-&gt;" src="../images/arrow.gif" />
          <a href="../tasks/index.html">Task Reference</a>
          <img alt="-&gt;" src="../images/arrow.gif" /> &lt;ildasm&gt;</td>
        <td class="NavBar-Cell" align="right">
                        v0.85</td>
      </tr>
    </table>
    <h1>&lt;ildasm&gt;</h1>
    <p> Disassembles any portable executable (PE) file that contains intermediate language (IL) code. </p>
    <p> Files are only disassembled if the input file is newer than the output file, or if the output file does not exist. However, you can explicitly force files to be disassembled with the <code>rebuild</code> attribute. </p>
    <p> A <a href="../types/fileset.html">&lt;fileset&gt;</a> can be used to select files to disassemble. To use a <a href="../types/fileset.html">&lt;fileset&gt;</a>, the <code>todir</code> attribute must be set. The file name of the output file will be equal to the file name of the input file, but with extension ".il". </p>
    <h3>Parameters</h3>
    <div class="table">
      <table>
        <tr>
          <th>Attribute</th>
          <th style="text-align: center;">Type</th>
          <th>Description</th>
          <th style="text-align: center;">Required</th>
        </tr>
        <tr>
          <td valign="top">all</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should combine the <code>/HEADER</code>, <code>/BYTE</code>, and <code>/TOKENS</code> options. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">bytes</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should generate the IL stream bytes (in hexadecimal notation) as instruction comments. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">header</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should include PE header information and runtime header information in the output. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">input</td>
          <td style="text-align: center;">file</td>
          <td> Specifies the PE file to disassemble. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">item</td>
          <td style="text-align: center;">string</td>
          <td> Instructs the disassembler to disassemble the specified item only. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">linenumbers</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should include references to original source lines. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">noil</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should suppress ILASM code output. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">output</td>
          <td style="text-align: center;">file</td>
          <td> Specifies the name of the output file created by the disassembler. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">publiconly</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should disassemble public items only. This is a shortcut for <code>visibility</code>="pub". The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">quoteallnames</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should enclose all names in single quotation marks. By default, only names that don't match the ILASM definition of a simple name are quoted. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">rawexceptionhandling</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should generate structured exception handling clauses in canonical (label) form. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">rebuild</td>
          <td style="text-align: center;">bool</td>
          <td> Instructs NAnt to rebuild the output file regardless of the file timestamps. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">source</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should generate original source lines as comments. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">todir</td>
          <td style="text-align: center;">directory</td>
          <td> Specifies the directory to which outputs will be stored. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">tokens</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should generate metadata token values as comments. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">unicode</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should use the UNICODE encoding when generating the output. The default is ANSI. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">utf8</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether or not the disassembler should use the UTF-8 encoding when generating the output. The default is ANSI. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">visibility</td>
          <td style="text-align: center;">string</td>
          <td> Instructs the disassembler to disassemble only the items with the specified visibility. Possible values are <code>PUB</code>, <code>PRI</code>, <code>FAM</code>, <code>ASM</code>, <code>FAA</code>, <code>FOA</code>, <code>PSC</code>, or any combination of them separated by <code>+</code>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">failonerror</td>
          <td style="text-align: center;">bool</td>
          <td> Determines if task failure stops the build, or is just reported. The default is <b>true</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">if</td>
          <td style="text-align: center;">bool</td>
          <td> If <b>true</b> then the task will be executed; otherwise, skipped. The default is <b>true</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">timeout</td>
          <td style="text-align: center;">int</td>
          <td> The maximum amount of time the application is allowed to execute, expressed in milliseconds. Defaults to no time-out. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">unless</td>
          <td style="text-align: center;">bool</td>
          <td> Opposite of <code>if</code>. If <b>false</b> then the task will be executed; otherwise, skipped. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">verbose</td>
          <td style="text-align: center;">bool</td>
          <td> Determines whether the task should report detailed build log messages. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
      </table>
    </div>
    <h3>Framework-configurable parameters</h3>
    <div class="table">
      <table>
        <tr>
          <th>Attribute</th>
          <th style="text-align: center;">Type</th>
          <th>Description</th>
          <th style="text-align: center;">Required</th>
        </tr>
        <tr>
          <td valign="top">exename</td>
          <td style="text-align: center;">string</td>
          <td> The name of the executable that should be used to launch the external program. </td>
          <td style="text-align: center;">False</td>
        </tr>
        <tr>
          <td valign="top">useruntimeengine</td>
          <td style="text-align: center;">bool</td>
          <td> Specifies whether the external program should be executed using a runtime engine, if configured. The default is <b>false</b>. </td>
          <td style="text-align: center;">False</td>
        </tr>
      </table>
    </div>
    <h3>Nested Elements:</h3>
    <!--Element-->
    <h4>
      <a id="assemblies">
      </a>
                    &lt;<a href="../types/fileset.html">assemblies</a>&gt;
                </h4>
    <div class="nested-element"> Specifies a list of PE files to disassemble. To use a <a href="../types/fileset.html">&lt;fileset&gt;</a>, the <code>todir</code> attribute must be specified. <p /></div>
    <h4>
      <a id="assemblies">
      </a>
                    &lt;/<a href="../types/fileset.html">assemblies</a>&gt;
                </h4>
    <h3>Examples</h3>
    <ul class="examples">
      <li>
        <p> Disassembles <code>helloworld.exe</code> to <code>helloworld.il</code>. </p>
        <pre class="code">
&lt;ildasm input="helloworld.exe" output="helloworld.il" /&gt;
    </pre>
      </li>
      <li>
        <p> Disassembles a set of PE files into the specified directory. </p>
        <pre class="code">
&lt;ildasm todir="."&gt;
    &lt;assemblies&gt;
        &lt;include name="*.exe" /&gt;
        &lt;include name="*.dll" /&gt;
    &lt;/assemblies&gt;
&lt;/ildasm&gt;
    </pre>
      </li>
    </ul>
    <h3>Requirements</h3>
    <div style="margin-left: 20px;">
      <b>Assembly:</b> NAnt.MSNetTasks (0.85.2478.0)
            </div>
  </body>
</html>